//class Solution {
//public:
//    int ans = 0;
//
//    int findTilt(TreeNode* root) {
//        dfs(root);
//        return ans;
//    }
//
//    int dfs(TreeNode* node) {
//        if (!node) {
//            return 0;
//        }
//        int sumLeft = dfs(node->left);
//        int sumRight = dfs(node->right);
//        ans += abs(sumLeft - sumRight);
//        return sumLeft + sumRight + node->val;
//    }
//};
//int SumLeaf(struct TreeNode* node) {
//    if (!node) return 0;
//    return node->val + SumLeaf(node->left) + SumLeaf(node->right);
//}
//
//bool isLeaf(struct TreeNode* node) {
//    return !node->left && !node->right;
//}
//
//int findTilt(struct TreeNode* root) {
//    if (!node || isLeaf(root)) return 0;
//    int sum = 0;
//    int sum1 = SumLeaf(root->left), sum2 = SumLeaf(root->right);
//    sum += sum1 > sum2 ? sum1 - sum2 : sum2 - sum1;
//    sum += findTilt(root->left);
//    sum += findTilt(root->right);
//    return sum;
//}
